<?php

// int
$a = 100_000;
$a = 0o12;
$a = 0x12;
$a = 0b11111111;

// float
$b = 100_000.00;

// string
$s = 'hello world';
$s = "hello world\n";

$s = <<<END
    hello world
    END;


$s = [
    <<<END
    name
    END,
    'age',
    'weight',
    'height',
];

// var_dump($s);

// 8.0.0 之后不允许
// ehco 1 + "10";

// Iterable 是php 7.1 引入的伪类型

function foo(iterable $data) {
    // ...
}

function bar(): iterable {
    return [1, 2, 3];
}

function gen(): iterable{
    yield 1;
    yield 2;
    yield 3;
}

$data = gen();

// foreach($data as $item) {
//     echo $item;
// }


// 执行运算符  当作shell 来执行
// echo `ls -al`;


// null 合并运算符  $a ??= $b $a = $a ?? $b

$c = 1;
$d = null;
// echo  $d ??= $c;


// 太空船运算符  <=>

$b = 1;
$c = 2;
$d = 3;
$e = 3;

// echo PHP_EOL;
// echo $b <=> $c;  // 左值小雨右值  -1
// echo PHP_EOL;
// echo $d <=> $c;  // 左值大于右值  1
// echo PHP_EOL;
// echo $d <=> $e;  // 相等   0



// and  or xor

// var_dump(true && true);   // 都为 true 则为 true
// var_dump(true or false);  // 任一为true 则为 true
// var_dump(true xor true);  // 只有一个为true 则为true


// 数组运算符

// + 联合  根据下标
// == 比较  拥有相同的键和值  顺序
// === 比较  类型

$a = [1, 3, 5, 7, 9];
$b = [2, 4, 6, 8, 10, 12,14];
$c = [1, 3, 5, 7, 9];

// var_dump($a + $b);
// var_dump($a == $b);
// var_dump($a == $c);
// var_dump($a === $b);
// var_dump($a === $c);
// var_dump($a !=$b);
// var_dump($a !== $b);


// 类型运算符

// instanceof

// $a = 1;
// $f = 1.1;
// $c = "hello world";
// $d = [1,2,3];

// var_dump($a instanceof int);


// 箭头函数
$fn = fn($x) => $x * 2;
var_dump($fn(2));





